package com.siss.tenancy.util;

import java.math.BigDecimal;

/**
 * @author 李宜朋
 * @ClassName BigDecimalUtil
 * @Description BigDecimalUtil工具类
 * @date 2020/6/22 11:44
 * @Version 2.0
 */
public class BigDecimalUtil {

    /**
     * 求和
     *
     * @param b1 参数
     * @param b2 参数
     * @return 计算结果
     */
    public static BigDecimal add(BigDecimal b1, BigDecimal b2) {
        return b1.add(b2);
    }


    /**
     * 求差
     *
     * @param b1 参数
     * @param b2 参数
     * @return 计算结果
     */
    public static BigDecimal sub(BigDecimal b1, BigDecimal b2) {
        return b1.subtract(b2);
    }


    /**
     * 求乘积
     *
     * @param b1 参数
     * @param b2 参数
     * @return 计算结果
     */
    public static BigDecimal mul(BigDecimal b1, BigDecimal b2) {
        return b1.multiply(b2);
    }


    /**
     * 求商
     *
     * @param b1 参数
     * @param b2 参数
     * @return 计算结果
     */
    public static BigDecimal div(BigDecimal b1, BigDecimal b2) {
        //四舍五入,保留两位小数,在除不尽的情况
        return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
    }

    /**
     *
     * 功能描述：判断num1是否小于num2
     * 作   者： liyp
     * 创建时间： 2020/6/22 11:50
     * 参数: [num1, num2]  
     *  返回值： boolean num1小于num2返回true
     */
    public static boolean lessThan(BigDecimal num1, BigDecimal num2) {
        return num1.compareTo(num2) == -1;
    }

    /**
     *
     * 功能描述：判断num1是否小于等于num2
     * 作   者： liyp
     * 创建时间： 2020/6/22 11:50
     * 参数: [num1, num2]
     *  返回值： boolean 小于或者等于num2返回true
     */
    public static boolean lessEqual(BigDecimal num1, BigDecimal num2) {
        return (num1.compareTo(num2) == -1) || (num1.compareTo(num2) == 0);
    }

    /**
     *
     * 功能描述：判断num1是否大于num2
     * 作   者： liyp
     * 创建时间： 2020/6/22 11:49
     * 参数: [num1, num2]
     *  返回值： boolean 大于num2返回true
     */
    public static boolean greaterThan(BigDecimal num1, BigDecimal num2) {
        return num1.compareTo(num2) == 1;
    }

    /**
     *
     * 功能描述：判断num1是否大于等于num2
     * 作   者： liyp
     * 创建时间： 2020/6/22 11:49
     * 参数: [num1, num2]
     *  返回值： boolean 大于或者等于num2返回true
     */
    public static boolean greaterEqual(BigDecimal num1, BigDecimal num2) {
        return (num1.compareTo(num2) == 1) || (num1.compareTo(num2) == 0);
    }

    /**
     *
     * 功能描述：判断num1是否等于num2
     * 作   者： liyp
     * 创建时间： 2020/6/22 11:49
     * 参数: [num1, num2]
     *  返回值： boolean 等于num2返回true
     */
    public static boolean equal(BigDecimal num1, BigDecimal num2) {
        return num1.compareTo(num2) == 0;
    }


    public static void main(String[] args) {
        BigDecimal bigDecimal = new BigDecimal("0");
        System.out.println(bigDecimal.toString());
    }
}
